import Base from '@/services/base'

import {
	isEmpty,
	AESEncrypt,
	formatDate
} from '@/utils/index';
import md5 from 'js-md5';

export default class service extends Base {
	/*
	登录
	logInfo 	账号,MD5(密码),时间戳(yyyy-MM-dd HH:mm:ss)进行RSA加密 	STRING 	必填
	devicNum 	设备号 	STRING 	非必填
	time 	时间戳(yyyy-MM-dd HH:mm:ss) 	STRING 	必填

	/api/user/customerLogin
	ce9850b6-a9a1-471b-a436-817f025b5ae5
	return
	返回字段 类型 描述
	success Boolean 是否成功标识 true 成功 false 失败
	message String 返回处理消息
	code String 返回代码
	token String 登录唯一标识
	roleType String 0、学生，1、老师
	timestamp long 时间戳
	 */
	async login({
			username,
			password,
			devicNum='321312312',
			gesture,
			option = 'password',
			isInput
		},
		// time = formatDate()
		//time = '2019-06-21 12:11:00'
	) {
		let encrypt = password;
		if(option=='gesture'){
			encrypt = gesture;
			option = 'gesture'
		}
		//const str = (`${username},${md5(encrypt)},${time}`);
		const logInfo = (`${md5(encrypt)}`);
		//const logInfo = AESEncrypt(str)
		const paramsLoginData = {
								logInfo,
								devicNum,
								username,
								option
							}
		const loginData = {
			...paramsLoginData,
			isInput
		}
		const resp = await this.fly.post('/api/user/customerLogin', loginData);
		if (resp.success) {
			let tokenInfo = {
				token: resp.result.token,
				timestamp: new Date().getTime()
			};
			uni.setStorage({
				key: 'tokenInfo',
				data: tokenInfo
			});

			uni.setStorage({
				key: 'keepLoginData',
				data: paramsLoginData,
			});
		}
		return resp;
	}

	/*
	修改密码
	359c7954-c02c-408f-82f6-71cb1390674b
	/api/user/modifyPwd
	*/
	async modifyPwd(
		params
	){
		const {oldPassword,newPassWord,gesture} = params;
		const resp = await this.fly.post('/api/user/modifyPwd', params);
		return resp;
	}

	/*
	重置密码
	/api/user/forgetPwd
	0da7f328-8d77-47a5-96bf-6fc083a599e8
	identityNo,studentNo,newPassword,newPwd
	*/
	async forgetPwd(params){
		return await this.fly.post('/api/user/forgetPwd', params);
	}



	/**
	 * 启动页广告页(不需要携带token)
	 *
	 *  mock地址：8d51e1d5-1592-4810-b496-682e0d621460
	 *  测试地址：api/start/Adverte
	 *
	 *  请求参数：无
	 *  返回参数：
	 *
	 *  返回字段      类型             描述
	 *   success        Boolean        是否成功标识  true 成功  false 失败
	 *   message       String           返回处理消息
	 *   code          String           返回代码
	 *   timestamp     long              时间戳
	 *     result
	 *       versionCode   long     版本号
	 *       url           string    路由地址
	 *       title         广告页标题
	 *       imgUrl        图片地址
	 *
	 */
	async startAdverte() {
		// return this.fly.post('8d51e1d5-1592-4810-b496-682e0d621460');
		return this.fly.get('/api/start/Adverte')
	}

	/*
	引导页
	/api/start/guilde
	*/
	async guilde(){
		// return this.fly.get('eb3c4077-2ac9-4966-a626-b9ff1b6f5a81');
		return this.fly.get('/api/start/guilde')
	}

	/**
	 * 版本更新
	 * 217da014-cc7d-4195-8ce1-4dee33425a47
	 * /api/start/checkVersion
	 */
	async versionUpdate(param) {
		console.log('版本入参：',JSON.stringify(param));
		return this.fly.get('/api/start/checkVersion',param);
	}

	/**
	 *  获取我的错题类型(需要携带token)
	 *
	 *  mock地址：c560407e-4021-42bc-9c46-dc4567ae616a
	 *  测试地址：api/user/wrongQueType
	 *
	 *  请求参数：无
	 *
	 *  返回参数：
	 *
	 */
	async mineWrongQueType(type) {
		// return await this.fly.post('c560407e-4021-42bc-9c46-dc4567ae616a');
		return await this.fly.get('api/user/wrongQueType',{type});
	}

	/**
	 * 根据错题类型来获取错题列表数据（需要携带token，有分页逻辑）
	 *
	 *   mock地址：3e96a209-7e08-4fb4-8c7f-cf7d7b05631f
	 *   测试地址：api/user/wrongQueListByCode
	 *
	 *   请求参数：code 错题类型
	 *             pageNo 当前页
	 *             pageSize 每页显示条数
	 *             column  	排序列名
	 *             order    排序方式 asc正序 desc 倒叙
	 */
	async wrongQueListByCode(
		code,
		pageNo,
		pageSize
	) {
		return await this.fly.post('/api/user/wrongQueListByCode',{code,pageNo,pageSize});
	}

	/**
	 * 删除错题集题目
	 *
	 *   测试地址：/api/user/deleteWrongQue
	 *
	 *   请求参数：queId 错题id
	 */
	async deleteWrongQue(
		queId
	) {
		return await this.fly.delete('/api/user/deleteWrongQue',{queId});
	}

}
